package com.mojo.io;

import javax.sound.midi.Soundbank;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
import java.io.IOException;

/**
 * 常用方法
 *
 * @author <a href="mailto:mojo_jj@163.com">Mojo</a>
 */
public class FileDemo03 {
    public static void main(String[] args) throws IOException {
        //文件递归
        File file = new File("E:\\电子书");
        //test1(file);
        //test2(file);
        //getFiles(file);
        String[] list = file.list();
        for (String s : list) {
            System.out.println(s);
        }
        System.out.println(">>>>>>>>>>>>>");
        test3();
    }

    private static void test3() throws IOException {
        //file常用方法
        File file = new File("E:\\project");
        //是否存在
        System.out.println(file.exists());
        //是否是目录
        System.out.println(file.isDirectory());
        //是否是文件
        System.out.println(file.isFile());
        //创建目录
        System.out.println(file.mkdir());
        //创建目录及所有父目录
        System.out.println(file.mkdirs());
        //创建新文件
        System.out.println(file.createNewFile());
        //目录下所有文件或目录名称的数组
        System.out.println(file.list().length);
    }

    private static void getFiles(File file) {
        File[] files = file.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                if (pathname.getName().equals("Java编程思想包")) {
                    return true;
                }
                return false;
            }
        });
        for (File file1 : files) {
            System.out.println(file1.getName());
            if (file1.isDirectory()) {
                System.out.print(" ==");
                getFiles(file1);
            }
        }

    }

    private static void test2(File file) {
        String[] springs = file.list((dir, name) -> {
            if (name.indexOf("java") > 0) {
                return true;
            }
            return false;
        });
        for (String spring : springs) {
            System.out.print(spring + ",");
        }
    }

    private static void test1(File file) {
        File[] files = file.listFiles();
        for (File file1 : files) {
            System.out.println(file1.getAbsolutePath());
            System.out.println(file1.getName());
            System.out.println("=======");
        }
    }
}
